"""
控制器层，用于处理业务逻辑
    共有6种操作：
        1)  添加新房源
        2)  查看房源
        3)  修改房总价
        4)  去除房源
        5)  保存房源信息
        6)  加载房源信息
"""
from .model import House
from . import view


def add_house():
    """添加新房源"""
    new_house = view.recorder_house_info()
    House.add_house(**new_house)


def show_all_house():
    """查看房源"""
    house_list = House.get_house_list()
    view.show_house_info(house_list)


def modify_house_total_price():
    """修改房总价"""
    # 1. 获取房子id
    try:
        id = int(input('输入房子的id：'))
    except ValueError:
        print('房子id输入有误，修改失败！')
        return
    # 2. 获取房子新的总价
    try:
        total_price = int(input('输入新的总价：'))
    except ValueError:
        print('总价输入错误，修改失败！')
        return
    # 3. 修改总价
    if House.modify_house_total_price(id, total_price):
        print('总价修改成功！')
    else:
        print('总价修改失败！')


def remove_house():
    """去除房源"""
    # 1. 获取房子id
    try:
        id = int(input('输入房子的id：'))
    except ValueError:
        print('房子id输入有误，删除失败！')
        return

    if House.remove_house(id):
        print('删除房子成功！')
    else:
        print('删除房子失败！')


def save_house_info():
    """保存房源信息"""
    if House.save_house_info():
        print('保存成功')
    else:
        print('保存失败')


def load_house_info():
    """加载房源信息"""
    if House.load_house_info():
        print('加载数据成功')
    else:
        print('加载数据失败')
